package com.open4cn.simulator.core.connector;

import java.io.Serializable;

/**
 * @author yinxiaopeng
 * @version 1.0.0
 * @company 致景科技
 * @department 飞梭BU/研发
 * @description 通讯连接器
 * @Email yinxiaopeng@zj.tech
 * @date 2022-03-14 23:20
 */
public interface IConnector extends Serializable {

    /**
     * 类型
     *
     * @return
     */
    ConnectorModeEnum getConnectorMode();

    /**
     * 连接
     *
     * @return
     */
    void connect(ConnectAddress address);


    /**
     * 获取状态
     *
     * @return
     */
    ConnectStatus getConnectStatus();


    /**
     * 获取连接地址
     *
     * @return
     */
    ConnectAddress getConnectAddress();


    /**
     * 发送信息
     *
     * @param msg
     * @return
     */
    boolean send(Object msg);


    /**
     * 是否已连接
     *
     * @return
     */
    boolean isConnected();


    /**
     * 是否已关闭
     *
     * @return
     */
    boolean isClosed();

    /**
     * 关闭
     *
     * @return
     */
    boolean close();


    /**
     * 销毁
     */
    void destroy();


}
